/**
 * 工具模块统一导出
 */

// 类型定义
export * from './types';

// 常量定义
export * from './constants';

// 工具函数
export * from './helpers';

// 重新导出常用工具类，方便使用
export {
    MathUtils,
    StringUtils,
    ArrayUtils,
    ObjectUtils,
    TimeUtils,
    ValidationUtils
} from './helpers';

// 重新导出常用常量，方便使用
export {
    SYSTEM_CONSTANTS,
    ERROR_CODES,
    HTTP_STATUS,
    GAME_CONSTANTS,
    ENUMS,
    REGEX_PATTERNS,
    MESSAGE_TEMPLATES,
    CONFIG_KEYS,
    EVENT_NAMES
} from './constants';

// 创建快捷访问方式
export const Utils = {
    Math: require('./helpers').MathUtils,
    String: require('./helpers').StringUtils,
    Array: require('./helpers').ArrayUtils,
    Object: require('./helpers').ObjectUtils,
    Time: require('./helpers').TimeUtils,
    Validation: require('./helpers').ValidationUtils,
};

/**
 * 兼容性包装器 - 保持与原有 common.ts 的兼容性
 */
export class CommonCompat {
    /**
     * 生成UUID（兼容原有接口）
     */
    get uuid(): string {
        return require('./helpers').StringUtils.generateUUID();
    }

    /**
     * 生成随机数（兼容原有接口）
     */
    random(min: number, max: number): number {
        return require('./helpers').MathUtils.randomInt(min, max);
    }

    /**
     * 解析数字（兼容原有接口）
     */
    cover_number(data: string): { k1: number; k2: number } {
        return require('./helpers').StringUtils.parseNumbers(data);
    }

    /**
     * 权重随机（兼容原有接口）
     */
    randomWeight(data: { min: number; max: number }): number {
        return require('./helpers').MathUtils.randomWeight(data);
    }
}

// 创建兼容性实例
export const common = new CommonCompat();

/**
 * 面部匹配类型枚举（从 face.ts 迁移）
 */
export enum mathType {
    完全匹配 = 1,    // 完全匹配
    开头匹配 = 2,    // 开头匹配
    模糊匹配 = 3,    // 模糊匹配
    全部拦截 = 4,    // 全部拦截
}

// 为了保持向后兼容，也导出新的枚举命名
export const MatchType = {
    EXACT: 1,      // 完全匹配
    PREFIX: 2,     // 开头匹配
    FUZZY: 3,      // 模糊匹配
    ALL: 4,        // 全部拦截
} as const;
